Rust: Ownership
所有権
ある値を所有できる権利
値の所有者はある時点で常に一人
参照を使えば他者に貸し出せる
所有権は他者に譲渡(move)できる
例題
code:rs
let p1 = Parent(1, Child(11), Child(12));
Child(11)やChild(12)のownerは誰か?
Parent
Parentのownerは誰か?
p1
参考
この本、説明の粒度がちょうどよくてわかりやすい
カニ本の方は詳細に踏み込みすぎて、知りたい抽象度より低めなんだよな
詳しく知りたい場合はそっちの方が良いが、初回に知るには逆にノイズが多い
v1前まではGCあったらしい
Rust は Web ブラウザのような高い性能が求められるアプリケーションの開発や、OSの記述を含むシステムプログラミングを念頭に置いて設計されました。1.0のリリース前はGCを行う言語でしたが、性能面の懸念から目標とする用途では受け入れられず設計が変更されました。その過程で所有権という概念が採用され、GCを取り除くことに成功しました。
発展
所有権の感じをvisualizationしてくれるらしい